/*****************************************************************************/
// This file is part of Hikari3D.
// 
// Hikari3D is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// Hikari3D is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
//
// Copyright 2008 Sebastian Pick
/*****************************************************************************/

#ifndef __MATERIALMANAGER_H
#define __MATERIALMANAGER_H

// === Defines ============================================================= //


// === Includes ============================================================ //
#include "Singleton.h"
#include "MaterialObject.h"
#include "BTree.h"

#include <map>
#include <string>
#include <stack>

using namespace std;


// === Class Declaration =================================================== //
class CMaterialManager : public CSingleton<CMaterialManager>
{
friend CSingleton;

public:
	// --- Destructor ------------------------------------------------------ //
	//! Default destructor.
	~CMaterialManager();


protected:
	// --- Variables ------------------------------------------------------- //
	CBTree<string, CMaterialObject*>	_oMaterials;


private:
	// --- Constructor ----------------------------------------------------- //
	//! Default constructor.
	inline CMaterialManager();



};


// --- Inline Functions ---------------------------------------------------- //
inline CMaterialManager::CMaterialManager()
{
	_oMaterials.Init(4,7);
}

#endif // __MATERIALMANAGER_H

// EOF
